1. Field of the Invention
The present invention relates to a semiconductor integrated circuit device and a method of programming the same and, more particularly, to a semiconductor integrated circuit device including an electrically programmable irreversible storage element, i.e., a so-called OTP (One-Time Programmable) memory, and a method of programming information in this storage element.
2. Description of the Related Art
In the recent semiconductor integrated circuit devices, a nonvolatile OTP memory, in which stored information does not disappear even when the power supply is turned off, is an essential element. The OTP memory is widely used for the purposes of, e.g., redundancy of a large-capacity memory such as a DRAM or SRAM, tuning of an analog circuit, code storage of, e.g., an encryption key, and storage of management information such as the log in the fabrication process.
For the memory redundancy purpose, for example, a ROM using a laser fuse which irreversibly stores information by blow by emitting a laser beam is used as the most inexpensive nonvolatile memory.
This laser fuse ROM requires a special fuse blowing device and a blowing step using the device, and hence requires a test cost for the purpose. Also, the minimum dimension of the laser fuse is determined by the wavelength of the laser beam used. Therefore, micropatterning of the laser fuse does not keep pace with that of the rest of the circuit, so the ratio of the area occupied by the laser fuse is gradually increasing. In addition, a method of programming the laser fuse allows it to be programmed only in the form of a wafer. Accordingly, the laser fuse cannot be used in, e.g., remedy of defects in a high-speed test after packaging, or built-in self repair performed by a test circuit built in a chip. Therefore, an electrically programmable nonvolatile memory is desirably incorporated into a system which uses the laser fuse.
On the other hand, in a system made up of a plurality of chips, various pieces of information can be stored in independent EEPROM chips. However, an SoC (System on Chip) by which a system is integrated on a single chip must have a nonvolatile memory inside the system. Unfortunately, embedding a nonvolatile memory which stores electric charge in a floating gate requires additional masks and processes for the purpose, and this increases the cost.
Note that all pieces of information to be stored in a nonvolatile memory, such as the memory redundancy information as described above, need not be rewritten many times. Accordingly, an OTP memory which can be fabricated by the standard CMOS process meets a variety of demands. In this specification, storage elements which are used in an OTP memory and which store information by irreversibly changing the element characteristics will be generally referred to as fuse elements hereinafter. Also, of these fuse elements, those which electrically irreversibly change the element characteristics will be referred to as electrical fuses hereinafter.
Examples of the electrical fuses are a poly (or metal) electrical fuse which changes the resistance value by supplying a large electric current to a polysilicon or metal line which intentionally increases the current density, and an anti fuse which uses dielectric breakdown of an element forming an integrated circuit. A gate oxide breakdown type anti fuse which uses a gate oxide of a MOS transistor as an insulator to be broken down requires no special additional process, and hence is widely applicable to CMOS products (e.g., Jpn. Pat. Appln. KOKAI Publication Nos. 2000-012699 and 2003-168734).
Generally, an electrical fuse changes the state of a fuse element within a short time period by a large electric current or voltage stress. In the electrical fuse which thus uses a breakdown phenomenon as a program mechanism, programming is a stochastic process; some elements are programmed immediately after the application of stress, and some elements are not well programmed within a limited programming time.
Remedy of such an insufficiently programmed defective bit requires a verify step which reads out (senses) data from an electrical fuse after programming, and compares the programmed data with the readout data. Whether the data is “pass” or “fail” is determined by this verify. If the data is “fail”, this imperfectly programmed bit must be reprogrammed.
The element characteristics after programming distribute with wide variations. Also, when deterioration of the element characteristics with time is taken into consideration, defective bits must be detected with a satisfactory margin. However, the conventional verify determines pass/fail by executing the same sense operation as a normal operation, and hence cannot detect a bit having marginal characteristics as a defect. This may cause a market defect.